#include <gtest/gtest.h>

#include <future>
#include <thread>

using namespace std::chrono_literals;

// 演示 std::async 创建异步任务并获取 std::future 返回值。
// async 任务休眠后返回 7，主线程通过 future.get() 获取结果。
TEST(AsyncTest, FutureGetsValue) {
    auto fut = std::async(std::launch::async, [] {
        std::this_thread::sleep_for(5ms);
        return 7;
    });

    EXPECT_EQ(fut.get(), 7);
}